match::simple is my take on a dumb match.
Its table is just:
Left Right Description and pseudocode
===============================================================
Any undef check whether Any is undefined
like: !defined Any
Any non-ref string equality
like: Any eq Any
Any Regexp pattern match
like: Any =~ /Regexp/
Any CODE sub passed Any returns true
like: CODE->(Any)
Any ARRAY smartmatch each ARRAY element[3]
like: grep { Any ~~ $_ } ARRAY
Any object call `MATCH` method on Object,
or invoke ~~ overloading on Object,
or die
Any other die
So the behaviour is predictable based on the right-hand side.