docs: def _basic_return(self, args, msg):
          """
          return a failed message
  
          This method returns an undeliverable message that was
          published with the "immediate" flag set, or an unroutable
          message published with the "mandatory" flag set. The reply
          code and text provide information about the reason that the
          message was undeliverable.
  
          PARAMETERS:
              reply_code: short
  
                  The reply code. The AMQ reply codes are defined in AMQ
                  RFC 011.
  
              reply_text: shortstr
  
                  The localised reply text.  This text can be logged as an
                  aid to resolving issues.
  
              exchange: shortstr
  
                  Specifies the name of the exchange that the message
                  was originally published to.
  
              routing_key: shortstr
  
                  Message routing key
  
                  Specifies the routing key name specified when the
                  message was published.
  
          """
          reply_code = args.read_short()
          reply_text = args.read_shortstr()
          exchange = args.read_shortstr()
          routing_key = args.read_shortstr()
  
          self.returned_messages.put(
              (reply_code, reply_text, exchange, routing_key, msg)
              )