Ruby, 21 bytes
->x{x*?!!~/[^2!]|22/}
Using a regex is actually shorter, because joining an array also flattens it.
##How it works
How it works
->x{
x*?! -> Join array using an exclamation mark
!~ -> String does not contain
/[^2!] -> characters different from '2' or '!'
| -> or
22/ -> '2' repeated at least twice
}