docs: def add(self, rulefactory):
          """Add a new rule or factory to the map and bind it.  Requires that the
          rule is not bound to another map.
  
          :param rulefactory: a :class:`Rule` or :class:`RuleFactory`
          """
          for rule in rulefactory.get_rules(self):
              rule.bind(self)
              self._rules.append(rule)
              self._rules_by_endpoint.setdefault(rule.endpoint, []).append(rule)
          self._remap = True