/**
  * Pass self to the ModuleEvent object early so everyone has access. 
  * 
  * @param ModuleEvent $e 
  * @return ConfigListener
  */
 public function loadModulesPre(ModuleEvent $e)
 {
     if ($this->getOptions()->getConfigCacheEnabled()) {
         $this->getOptions()->setConfigCacheKey(implode('.', $e->getTarget()->getModules()) . '.' . $this->getOptions()->getConfigCacheKey());
         if ($this->hasCachedConfig()) {
             $this->skipConfig = true;
             $this->setMergedConfig($this->getCachedConfig());
         }
     }
     return parent::loadModulesPre($e);
 }