public function getNodeByValuePath($name, array $search)
    {
        $findNested = function (array $nodes, array $tokens) use ($name, &$findNested) {
            $token = array_shift($tokens);
            foreach ($nodes as $node) {
                $nodeName = $node->get($name);
                if ($nodeName === $token) {
                    // Match
                    if (count($tokens)) {
                        // Search next level
                        return $findNested($node->getChildren(), $tokens);
                    } else {
                        // We found the node we were looking for
                        return $node;
                    }
                }
            }
            return null;
        };

        return $findNested($this->getRootNodes(), $search);
    }