Set available patterns

You provide a large list of beautiful patterns. For my usecase I want to use just a subset of all available patterns. This PR makes it possible to reduce the available patterns as optional argument to ".generator".

BTW:
Is there a test suite available anywhere?

Cheers,
dg
Same here. `opts[:patterns]` will never be empty with the current logic.