skip dealing with params if none are provided

This lets us avoid

1. A slow call to Hash#slice
2. An is_a? test
3. Extra hash allocations (from slice)
4. String allocations

etc.