The default values of these patterns seems like a concern that `BacktraceCleaner` should have rather than `Configuration` now that there is an object to manage that.  So maybe it's worth setting up the `initialize` method of the `BacktraceCleaner` so that it sets these defaults?

Also, it seems odd to me to hold two references to the patterns -- one in the configuration object (in the form of `@backtrace_x_patterns`) and one in the `BacktraceCleaner` object itself (in the form of `@x_patterns`).

It seems to me that it's much cleaner to only hold that state in one place (the `BacktraceCleaner`).  That makes it clear where the canonical source of this information is.  With this approach, you would do something like:

``` ruby
class Configuration
  attr_reader :backtrace_cleaner

  def initialize
    @backtrace_cleaner = BacktraceCleaner.new
  end

  def backtrace_exclude_patterns
    backtrace_cleaner.exclude_patterns
  end

  def backtrace_exclude_patterns=(patterns)
    backtrace_cleaner.exclude_patterns = patterns
  end

  # do the same for the include patterns, too
end
```

Then you don't have to mess with the `recreate_backtrace_cleaner` business.

One last comment: for some reason, I think `backtrace_exclusion_patterns` and `backtrace_inclusion_patterns` read better than `backtrace_include_patterns` and `backtrace_exclude_patterns`, although I can't really come up with a reason why.  Don't feel like you have to change it to this, but if you (and/or @dchelimsky or @alindeman) think it reads better, it might be worth switching to these names.