public function removeTypePreference($interfaceOrAbstract, $preferredType)
        {
            $key = ($this->hasAlias($interfaceOrAbstract)) ? 'alias:' . $interfaceOrAbstract : $interfaceOrAbstract;

            if (!isset($this->typePreferences[$key]) || !Arrays::in($preferredType, $this->typePreferences[$key])) {
                return false;
            }

            unset($this->typePreferences[$key][array_search($key, $this->typePreferences)]);

            return $this;
        }