public function push(RenderingContext $context)
    {
        if ($this->getLevel() == self::COMPONENT) {
            throw new \BadMethodCallException(
                'Cannot push another context : stack is full. Resolve or flush current one first'
            );
        }

        array_unshift($this->stack, $context);

        return $this;
    }