I think it would be nicer to define this as `def initialize(registry = Undefined)` and then only do: reset(registry) unless `registry.equal?(Undefined)`. Technically it's more code, but it's more specific. I don't like the idea of code that behaves the same when called like:

```ruby
DataMapper::Environment.new
DataMapper::Environment.new(nil)
```

It just seems if somewhere along the line code accidentally injects `nil` into the constructor the code will happily accept it, when it should throw an exception imho.