private PageContext extract(Route route, JsonNode item) {
    Map<String, Object> variables = new HashMap<>();
    route
        .getExtract()
        .entrySet()
        .stream()
        .forEach(
            entry -> {
              variables.put(entry.getKey(), apply(item, entry.getValue()));
            });

    Page target = application.route(route.getPath());
    return new PageContext(target, variables);
  }