There's a subtle change here: when everything is filtered, this returns a blank array, whereas before it returned the original backtrace.  Is that intentional?  I can see an argument for doing it either way...but I think I (slightly) lean towards the original behavior.  Consider a case where a user is using a shared example group defined in some gem.  If that fails, I'd expect that every line would get filtered (since it's in a gem).  That's probably not what a user wants.  To me, the benefit of the backtrace filtering is to help folks find the source of the failure by reducing the noise of the lines that are probably unimportant -- but if a blank array is returned then this purpose is defeated since they won't be given anything to help find the source of the failure at all.

If we do decide to allow everything to be filtered, I think it should replace the empty array with an array containing a single message explaining that everything was filtered and the user can see the full backtrace with `--backtrace`.