public function pipeline($callback = null)
    {
        $pipe = $this->createPipeline();
        if ($callback === null) {
            return $pipe;
        }
        call_user_func($callback, $pipe);
        return $pipe->execute();
    }