docs: def remove(self, name, **params):
          """
          Delete a command from the watched list.  This involves removing
          the command from the inverted watch list, then possibly
          rebuilding the event set if any modules no longer need watching.
      """
          log = self._getparam('log', self._discard, **params)
  
          if name not in self.names:
              log.error("Attempt to remove %r which was never added", name)
              raise Exception("Command %r has never been added" % (name,))
          del self.names[name]
          rebuild = False
          for path in list(self.modules):
              if name in self.modules[path]:
                  self.modules[path].remove(name)
              if len(self.modules[path]) == 0:
                  del self.modules[path]
                  rebuild = True
          if rebuild:
              self._build(name, **params)