public function resolve($options, ClassLoader $classLoader = null)
    {
        $hashKey = self::generateParamsHashKey($this->params);

        // Was configureOptions() executed before for this class?
        if (!isset(self::$resolvers[$hashKey])) {
            self::$resolvers[$hashKey] = new OptionsResolver();
            $this->configureOptions(self::$resolvers[$hashKey], $classLoader);
        }

        return self::$resolvers[$hashKey]->resolve($options);
    }