docs: def register(self, plugin):
          """Take a feather.plugin.Plugin and tell our dispatcher about it.
  
          Plugins are expected to provide a list of the messages that they
          listen for and generate. If registering this plugin makes it so we have
          at least one plugin listening for and generating our expected messages,
          set self.valid to true
          """
          self.needed_listeners -= plugin.listeners
          self.needed_messengers -= plugin.messengers
  
          if self.needed_messengers == self.needed_listeners == set():
              self.valid = True
  
          self.dispatcher.register(plugin)