code: public static <V> Node<V> findNodeByPath(Node<V> parent, String path) {
          checkArgNotNull(path, "path");
          return parent != null && hasChildren(parent) ? findNodeByPath(parent.getChildren(), path) : null;
      }
docs: <p>Returns the parse tree node underneath the given parent that matches the given path.</p>
  <p>The path is a '/' separated list of node label prefixes describing the ancestor chain of the node to look for
  relative to the given parent node. If there are several nodes that match the given path the method
  returns the first one unless the respective path segments has the special prefix "last:". In this case the
  last matching node is returned.
  <p><b>Example:</b> "per/last:so/fix" will return the first node, whose label starts with "fix" under the last
  node, whose label starts with "so" under the first node, whose label starts with "per".</p>
  If parent is null or no node is found the method returns null.
  
  @param parent the parent Node
  @param path   the path to the Node being searched for
  @return the Node if found or null if not found