/**
  * Add an event subscriber
  *
  * @param  EventSubscriberInterface $subscriber The event subscriber to add
  * @return  EventDispatcherAbstract
  */
 public function addEventSubscriber(EventSubscriberInterface $subscriber, $priority = null)
 {
     $handle = $subscriber->getHandle();
     if (!isset($this->_subscribers[$handle])) {
         $subscriptions = $subscriber->getSubscriptions();
         $priority = is_int($priority) ? $priority : $subscriber->getPriority();
         foreach ($subscriptions as $name => $listener) {
             $this->addEventListener($name, $listener, $priority);
         }
         $this->_subscribers[$handle] = $subscriber;
     }
     return $this;
 }