I understand why you want to keep `in the queue`; parsing this is hard.

In cases like this, it's best to have multiple matching statements so...

```
+Given(/^the server (has|puts|purges|contains|only contains) (no|the|an) IPN$/) do |action, existance|
```
and
```
+Given(/^the server (has|puts|purges|contains|only contains) (no|the|an) IPN .*?(?:in|into|from|to|for|available for)
(my computer|another computer|)$/) do |action, existance ,assignment|
```
Having two matchers makes the matching easier than if we have to do it all in one.