public function addNode($pattern, $answers = null, $attributes = [])
    {
        // Multiple nodes. If user like to use $patterns => $answers method
        if (is_array($pattern) && is_null($answers)) {
            $this->addNodes($pattern, $attributes);

            return null;
        }

        $type_pattern         = $this->getNodeTypeAndPattern($pattern);
        list($type, $pattern) = $type_pattern;

        if (!is_string($pattern) && is_callable($pattern)) {
            $this->persistNode(
                [['type' => 'callback', 'content' => $answers]],
                $type,
                $pattern,
                $attributes
            );

            return $this;
        }

        if (is_string($answers)) {
            $answers = trim($answers);
        }

        $answers = (array)$answers;
        $answers = $this->parse($answers);

        // Persist to DB
        $this->persistNode($answers, $type, $pattern, $attributes);

        return $this;
    }