code: Node getNode(Node root) {
          if (isRoot()) {
              return root;
          }
  
          Node startNode = root;
          Matcher pathMatcher = dotWithPreviousChar.matcher(path);
          int pos = 0;
          while (pathMatcher.find()) {
              String step = path.substring(pos, pathMatcher.end() - 1);
              pos = pathMatcher.end();
              startNode = doStep(step, startNode);
          }
          startNode = doStep(path.substring(pos), startNode);
          return startNode;
      }
docs: Returns node with given path.