def register_event(self, direction, verb, child_fn, priority=<NUM_LIT:10>):
event_managers = []<EOL>if direction in ('<STR_LIT>', '<STR_LIT>'):<EOL><INDENT>event_managers.append(self._events_in)<EOL><DEDENT>if direction in ('<STR_LIT>', '<STR_LIT>'):<EOL><INDENT>event_managers.append(self._events_out)<EOL><DEDENT>if direction == '<STR_LIT>':<EOL><INDENT>event_managers.append(self._girc_events)<EOL><DEDENT>for event_manager in event_managers:<EOL><INDENT>event_manager.register(verb, child_fn, priority=priority)<EOL><DEDENT>
Register an event with all servers.

        Args:
            direction (str): `in`, `out`, `both`, or `girc`.
            verb (str): Event name, `all`, or `raw`.
            child_fn (function): Handler function.
            priority (int): Handler priority (lower priority executes first).

        Note: `all` will not match `raw` events. If you wish to receive both
        `raw` and all other events, you need to register these separately.