docs: def add_portal(self, origin, destination, symmetrical=False, **kwargs):
          """Connect the origin to the destination with a :class:`Portal`.
  
          Keyword arguments are the :class:`Portal`'s
          attributes. Exception: if keyword ``symmetrical`` == ``True``,
          a mirror-:class:`Portal` will be placed in the opposite
          direction between the same nodes. It will always appear to
          have the placed :class:`Portal`'s stats, and any change to the
          mirror :class:`Portal`'s stats will affect the placed
          :class:`Portal`.
  
          """
          if isinstance(origin, Node):
              origin = origin.name
          if isinstance(destination, Node):
              destination = destination.name
          super().add_edge(origin, destination, **kwargs)
          if symmetrical:
              self.add_portal(destination, origin, is_mirror=True)