protected function doDispatch($listeners, $eventName, Event $event)
    {
        foreach ($listeners as $id => $listener) {

            if (isset($this->listeners[$eventName])) {
                foreach($this->listeners[$eventName] as $key => $val) {
                    // services
                    if ($val[0] === $listener[0]) {
                        // queue names
                        if ($val[1] != null && $val[1] != $event->getMessage()->getQueueName()) {
                            continue 2;
                        }
                        break;
                    }
                }
            }

            call_user_func($listener, $event, $eventName, $this);
            if ($event->isPropagationStopped()) {
                break;
            }
        }
    }