### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

The provided example does not put a message in SQS.

### Expected Behavior

The provided example puts a message in SQS.

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

The following scripts returns no items in SQS, but it should. The bit detail: foo is not matched.

```
awslocal events create-event-bus \
    --name detail-bus-1

awslocal sqs create-queue \
    --queue-name "detail-sqs-1"

awslocal events put-rule \
    --name "detail-rule-1" \
    --event-bus-name "detail-bus-1" \
    --event-pattern '{ "detail": { "foo": [ { "exists": true } ] } }'

awslocal events put-targets \
    --rule "detail-rule-1" \
    --event-bus-name "detail-bus-1" \
    --targets "Id"="detail-target-rule-1","Arn"="arn:aws:sqs:us-east-1:000000000000:detail-sqs-1","InputPath"="$.detail"

awslocal events put-events --entries '[{"DetailType": "test", "Source": "aws.test", "Detail": "{ \"foo\": \"bar\" }", "EventBusName": "detail-bus-1"}]'
awslocal sqs receive-message --queue-url http://localhost:4566/000000000000/detail-sqs-1
```

### Environment

```markdown
- OS: macOS 13.3.1
- LocalStack: 1.4.0
```


### Anything else?

_No response_
return False
def handle_prefix_filtering(event_pattern, value):
    for element in event_pattern:
        if isinstance(element, (int, str)):
            if str(element) == str(value):
                return True
            if element in value:
                return True
        elif isinstance(element, dict) and "prefix" in element:
            if value.startswith(element.get("prefix")):
                return True
        elif isinstance(element, dict) and "anything-but" in element:
            if element.get("anything-but") != value:
                return True
        elif "numeric" in element:
            return handle_numeric_conditions(element.get("numeric"), value)
        elif isinstance(element, list):
            if value in list:
                return True
    return False
def identify_content_base_parameter_in_pattern(parameters) -> bool:
    return any(
        list(param.keys())[0] in CONTENT_BASE_FILTER_KEYWORDS
        for param in parameters
        if isinstance(param, dict)
    )
def get_two_lists_intersection(lst1: List, lst2: List) -> List:
    lst3 = [value for value in lst1 if value in lst2]
    return lst3
def filter_event_based_on_event_format(