Send a generic IRC message to the server.

        A message is created using the various parts of the message, then gets
        assembled and sent to the server.

        Args:
            verb (str): Verb, such as PRIVMSG.
            params (list of str): Message parameters, defaults to no params.
            source (str): Source of the message, defaults to no source.
            tags (dict): `Tags <http://ircv3.net/specs/core/message-tags-3.2.html>`_
                to send with the message.

def send(self, verb, params=None, source=None, tags=None):
        """Send a generic IRC message to the server.

        A message is created using the various parts of the message, then gets
        assembled and sent to the server.

        Args:
            verb (str): Verb, such as PRIVMSG.
            params (list of str): Message parameters, defaults to no params.
            source (str): Source of the message, defaults to no source.
            tags (dict): `Tags <http://ircv3.net/specs/core/message-tags-3.2.html>`_
                to send with the message.
        """
        m = RFC1459Message.from_data(verb, params=params, source=source, tags=tags)
        self._send_message(m)