code: public static <V, C extends Collection<Node<V>>> C collectNodesByPath(Node<V> parent, String path, C collection) {
          checkArgNotNull(path, "path");
          checkArgNotNull(collection, "collection");
          return parent != null && hasChildren(parent) ?
                  collectNodesByPath(parent.getChildren(), path, collection) : collection;
      }
docs: Collects all nodes underneath the given parent that match the given path.
  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.
  
  @param parent     the parent Node
  @param path       the path to the Nodes being searched for
  @param collection the collection to collect the found Nodes into
  @return the same collection instance passed as a parameter