public function register(string $eventCode, callable $listener)
    {
        $this->assertValidEventCode($eventCode);
        if (false === isset($this->eventListeners[$eventCode])) {
            $this->eventListeners[$eventCode] = [];
        }
        $this->eventListeners[$eventCode][] = $listener;

        return $this;
    }