protected function call($pipe, $passable, $stack)
    {
        if ($pipe instanceof Closure) {
            return call_user_func($pipe, $passable, $stack);
        }

        // The pipe is not a Closure instance.
        else if (! is_object($pipe)) {
            list($name, $parameters) = $this->parsePipeString($pipe);

            $pipe = $this->getContainer()->make($name);

            $parameters = array_merge(array($passable, $stack), $parameters);
        } else {
            $parameters = array($passable, $stack);
        }

        return call_user_func_array(array($pipe, $this->method), $parameters);
    }