thoughtworks/pacto — pull request #107 by maxlinc (2014-03-05 19:00:52+00:00)
Title: Fix for URI pattern so it isn't too greedy - allowing nested resources

The "relaxed" URI pattern was too relaxed, making it impossible to use things like nested resource routes in rails. If you had routes like:

```ruby
resources :magazines do
resources :ads
end
```

You couldn't have a separate contract for magazine and ads (without using "strict" matching, which implies other major changes and is *too* strict IMHO). The problem was that the URI pattern for /magazines would also matches requests for /magazines/ads.

This fix does two things:
- Does not allow additional path elements, so `/magazine` doesn't also match match `/magazine/blah` (you can still match a placeholder with `/magazine/:id`).
- Still allows parameters after the path part of the URI. In other words, the only possible matching character after `/magazine` is `?` to indicate we're now talking about query params.

This is potentially a breaking change, but I still consider it a bug since the implementation went against established conventions and didn't have an easy workaround.