3 things:

* The fact that you need to use `not` here suggests that the main method exposed off of `BacktraceCleaner` should be `exclude?` rather than `include?` -- then you won't need to use `not` anymore.
* Rather than storing the patterns in the configuration object, and constructing a `BacktraceCleaner` object on the fly, I think I'd prefer to see a single `BacktraceCleaner` object instantiated on `Configuration#instantiate`, and then have it store the state of the include/exclude patterns -- `backtrace_include_patterns` and `backtrace_exclude_patterns` would simply delegate to the `BacktraceCleaner` object.  Among other things, this results in fewer object allocations (which results in less garbage to clean up).  As it stands now, a new `BacktraceCleaner` instance is instantiated for every single backtrace line from any failure.  That seems kinda wasteful.
* Once you have a `Configuration#backtrace_cleaner` instance, I think it would be preferrable to update the things that call here to call the method on the cleaner directly.  As indicated by David'd TODO comment, it would make more sense to have things asking the backtrace cleaner if a line should be included or not, rather than asking the configuration that.