code: func (f *Filter) MatchMessage(msg *ReceivedMessage) bool {
  	if f.PoW > 0 && msg.PoW < f.PoW {
  		return false
  	}
  
  	if f.expectsAsymmetricEncryption() && msg.isAsymmetricEncryption() {
  		return IsPubKeyEqual(&f.KeyAsym.PublicKey, msg.Dst)
  	} else if f.expectsSymmetricEncryption() && msg.isSymmetricEncryption() {
  		return f.SymKeyHash == msg.SymKeyHash
  	}
  	return false
  }
docs: // MatchMessage checks if the filter matches an already decrypted
  // message (i.e. a Message that has already been handled by
  // MatchEnvelope when checked by a previous filter).
  // Topics are not checked here, since this is done by topic matchers.