docs: def send(self, message, _sender=None):
          """Sends a message to the actor represented by this `Ref`."""
          if not _sender:
              context = get_context()
              if context:
                  _sender = context.ref
          if self._cell:
              if not self._cell.stopped:
                  self._cell.receive(message, _sender)
                  return
              else:
                  self._cell = None
          if not self.is_local:
              if self.uri.node != self.node.nid:
                  self.node.send_message(message, remote_ref=self, sender=_sender)
              else:
                  self._cell = self.node.guardian.lookup_cell(self.uri)
                  self.is_local = True
                  self._cell.receive(message, _sender)
          else:
              if self.node and self.node.guardian:
                  cell = self.node.guardian.lookup_cell(self.uri)
                  if cell:
                      cell.receive(message, _sender)  # do NOT set self._cell--it will never be unset and will cause a memleak
                      return
              if ('_watched', ANY) == message:
                  message[1].send(('terminated', self), _sender=self)
              elif (message == ('terminated', ANY) or message == ('_unwatched', ANY) or message == ('_node_down', ANY) or
                    message == '_stop' or message == '_kill' or message == '__done'):
                  pass
              else:
                  Events.log(DeadLetter(self, message, _sender))