forward(message) {

    // Abort if forwarding is currently suspended
    if (this.suspended) return;

    // Abort if this message type should not be forwarded
    if (!this.types.includes(message.type)) return;

    // Abort if this channel should not be forwarded
    if (message.channel && !this.channels.includes(message.channel)) return;

    // Forward
    this.destinations.forEach(destination => {
      if (WebMidi.validation && !(destination instanceof Output)) return;
      destination.send(message);
    });

  }
Sends the specified message to the forwarder's destination(s) if it matches the specified
type(s) and channel(s).

@param {Message} message The [`Message`](Message) object to forward.