public function execute(Node $node)
    {
        if ($this->isTerminated()) {
            throw new \RuntimeException(sprintf('%s is terminated', $this));
        }
        
        $this->engine->pushCommand($this->engine->createExecuteNodeCommand($this, $node));
    }