code: private CmsPathTree<P, V> findNodeInternal(List<P> pathToConsume) {
  
          Iterator<P> iter = pathToConsume.iterator();
          CmsPathTree<P, V> currentNode = this;
          while (iter.hasNext()) {
              CmsPathTree<P, V> child = currentNode.getChild(iter.next());
              if (child != null) {
                  iter.remove();
                  currentNode = child;
              } else {
                  return currentNode;
              }
          }
          return currentNode;
      }
docs: Tries to traverse the descendants of this node along the given path,
  and returns the last existing node along that path.<p>
  
  The given path is modified so that only the part of the path for which no nodes can be found
  remains.<p>
  
  @param pathToConsume the path to find (will be modified by this method)
  @return the last node found along the descendant chain for the path