code: public static <T> Optional<T> findByPath(TreeDef<T> treeDef, T node, List<T> path, Function<? super T, ?> mapper) {
  		return findByPath(treeDef, node, mapper, path, mapper);
  	}
docs: Finds a child TreeNode based on its path.
  <p>
  Searches the child nodes for the first element, then that
  node's children for the second element, etc.
  
  @param treeDef		defines a tree
  @param node			starting point for the search
  @param path			the path of nodes which we're looking
  @param mapper		maps elements to some value for comparison between the tree and the path