def METHOD_NAME(self, pipe_target, broker, result, group_info, raise_on_error: bool):
    """Send a message to the pipe target (if it's a list to all the pipe targets)
    If it's a group, we need to get the result of each actor from the result backend because it's not present in
    the message.
    Parameters:
        pipe_target(dict|List[dict]): the message or list of message to enqueue
        broker(Broker): the broker
        result(any): the result of the actor (to be send with the message if pipe_ignore=False)
        group_info(GroupInfo|None): the info of the group if it's a group else None
    """
    # Since Pipelines is a default middleware, this import has to
    # happen at runtime in order to avoid a cyclic dependency
    # from broker -> pipelines -> messages -> broker.
    from ..message import Message
    for message_data in pipe_target:
        next_message = Message(**message_data)
        pipe_ignore = self.get_option("pipe_ignore", broker=broker, message=next_message, default=False)
        if not pipe_ignore:
            if group_info:
                result = self._group_results(group_info, broker, raise_on_error)
            next_message = next_message.copy(args=next_message.args + (result,))
        broker.enqueue(next_message)