public function setDependentContext($name, $value, $allowOverride = false)
    {
        if (!$allowOverride && isset($this->dependentContext[$name])) {
            throw new \LogicException(sprintf("you are overriding an existing dependent context '%s', are you sure you meant to do this?", $name));
        }

        $this->dependentContext[$name] = $value;
    }