public function createReference($reference, Closure $callable, array $parameters = [], $shared = false)
    {
        $reference = $this->mapReference($reference);

        $this[$reference] =
            ($shared) ? static::share($callable) : static::protect($callable);

        return $this[$reference];
    }