Refactor BePredicate matcher for composability

- Don’t raise errors
- Check validity before checking predicate matches