protected function addNode(BaseGraph $graph, $nodeId, array $components, Node $parentNode = null)
    {
        $absNodeId = (($parentNode instanceof Node) ? $parentNode->getId() : '/').$nodeId;
        $graph->node(
            $absNodeId,
            [
                'label' => $nodeId,
                'shape' => 'none',
                'style' => 'none',
            ]
        );

        if ($parentNode instanceof Node) {
            $graph->edge(
                [$parentNode->getId(), $absNodeId], ['arrowhead' => 'none', 'color' => 'darkgrey', 'penwidth' => .5]
            );
        }

        return $this->addComponents($graph, $components, $graph->get($absNodeId));
    }