### 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_
clean_up(
                    bus_name=bus_name,
                    rule_name=rule_name,
                    target_ids=target_id,
                    queue_url=queue_url,
                )
            return messages
        yield _put_events_with_filter_to_sqs
    def _put_entries_assert_results_sqs(
        self, events_client, sqs_client, queue_url: str, entries: List[Dict], should_match: bool
    ):
        response = events_client.put_events(Entries=entries)
        assert not response.get("FailedEntryCount")
        def get_message(queue_url):
            resp = sqs_client.receive_message(QueueUrl=queue_url)
            messages = resp.get("Messages")
            if should_match:
                assert len(messages) == 1
            return messages
        messages = retry(get_message, retries=5, sleep=1, queue_url=queue_url)
        if should_match:
            actual_event = json.loads(messages[0]["Body"])
            if "detail" in actual_event:
                self.assert_valid_event(actual_event)
            return messages
        else:
            assert not messages
            return None
    @markers.aws.validated
    def test_put_events_with_rule_anything_but_to_sqs(