### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

My SQS queue is not receiving notifications from SNS when they both have fifo enabled:

```
#Create sqs
aws --endpoint-url=http://localhost:4566 sqs create-queue --queue-name onexlab.fifo --attributes FifoQueue=true
#create sns
aws --endpoint-url=http://localhost:4566 sns create-topic --name onexlab-sns.fifo --attributes FifoTopic=true,ContentBasedDeduplication=true
#create subscription
aws --endpoint-url=http://localhost:4566 sns subscribe --topic-arn arn:aws:sns:us-east-1:000000000000:onexlab-sns.fifo --protocol sqs --notification-endpoint  arn:aws:sqs:us-east-1:000000000000:onexlab.fifo
#publish messasge
aws --endpoint-url=http://localhost:4566 sns publish  --topic-arn arn:aws:sns:us-east-1:000000000000:onexlab-sns.fifo --message 'Welcome to Onexlab!' --message-group-id "test"
#check messages
aws --endpoint-url=http://localhost:4566 sqs receive-message --queue-url http://localhost:4566/000000000000/onexlab.fifo
```

No messages on the SQS queue.

### Expected Behavior

Expect the sqs queue to have the message.

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

    docker-compose up

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)
``` 
#Create sqs
aws --endpoint-url=http://localhost:4566 sqs create-queue --queue-name onexlab.fifo --attributes FifoQueue=true
#create sns
aws --endpoint-url=http://localhost:4566 sns create-topic --name onexlab-sns.fifo --attributes FifoTopic=true,ContentBasedDeduplication=true
#create subscription
aws --endpoint-url=http://localhost:4566 sns subscribe --topic-arn arn:aws:sns:us-east-1:000000000000:onexlab-sns.fifo --protocol sqs --notification-endpoint  arn:aws:sqs:us-east-1:000000000000:onexlab.fifo
#publish messasge
aws --endpoint-url=http://localhost:4566 sns publish  --topic-arn arn:aws:sns:us-east-1:000000000000:onexlab-sns.fifo --message 'Welcome to Onexlab!' --message-group-id "test"
#check messages
aws --endpoint-url=http://localhost:4566 sqs receive-message --queue-url http://localhost:4566/000000000000/onexlab.fifo
```


### Environment

```markdown
- OS: Mac os

- LocalStack:latest

version: '3.0'

services:
  localstack:
    image: localstack/localstack:latest
    environment: 
      - AWS_DEFAULT_REGION=us-east-1
      - EDGE_PORT=4566
      - SERVICES=sqs,sns
    ports:
      - '4566-4597:4566-4597'
    volumes:
      - "${TMPDIR:-/lib/localstack}:/lib/localstack"
      - "/var/run/docker.sock:/var/run/docker.sock"
```


### Anything else?

_No response_
We now have these parameters to the function:
        filter_policy = {
            "key": [{"prefix": "auto-"}],
            "nested_key": [{"exists": False}],
        }
        payload = {
            "key": "auto-test",
        }
        We can now properly evaluate the conditions on the same level of depth in the dict object.
        As it passes the filter policy, we then continue to evaluate the top keys, going back to "test".
        :param filter_policy: a dict, starting at the FilterPolicy
        :param payload: a dict, starting at the MessageBody
        :return: True if the payload respect the filter policy, otherwise False
        """
        for field_name, values in filter_policy.items():
            
            if not isinstance(values, list):
                if not self._evaluate_nested_filter_policy_on_dict(
                    values, payload.get(field_name, {})
                ):
                    return False
            else:
                
                for condition in values:
                    if not self._evaluate_condition(
                        payload.get(field_name), condition, field_exists=field_name in payload
                    ):
                        return False
        return True
    def _evaluate_filter_policy_conditions_on_attribute(