public function beforeTraverse(array $nodes)
    {
        $keyedNodes = [];

        foreach ($nodes as $node) {
            $hashFunc = $node->getType().'Hash';

            if ( ! method_exists($this, $hashFunc)) {
                $keyedNodes[] = $node;

                continue;
            }

            $keyedNodes[$this->$hashFunc($node)] = $node;
        }

        return $keyedNodes;
    }