title: JBehave pattern variants - trying to match alternatives
body: <p>I have the following in my story that I am trying to match</p>
  
  <pre><code>!-- Block 1
  When I "action" of document "document" to "status" and nextAction
  When I "action" for document "document" to "status" and nextAction
  When I "action" document "document" to "status" and nextAction
  !-- Block 2
  When I "action" of document "document" and nextAction
  When I "action" for document "document" and nextAction
  When I "action" document "document" and nextAction
  !-- Block 3
  When I "action" of document "document" to "status"
  When I "action" for document "document" to "status"
  When I "action" document "document" to "status"
  !-- Block 4
  When I "action" of document "document"
  When I "action" for document "document"
  When I "action" document "document"
  </code></pre>
  
  <p>Between <em>"action"</em> and <em>document</em> there may be <em>of</em>, <em>for</em> or empty
  <em>to "status"</em> is optional
  <em>and nextAction</em> is optional</p>
  
  <p>In the steps file I have the following</p>
  
  <pre><code>@When ("I \"$action\"{| of| for} document \"$document\"{ to \"$status\"|}{ and $nextAction|}")
  </code></pre>
  
  <p>This is matching blocks 1 and 2 but not blocks 3 and 4 from the story file.</p>
  
  <p>Can you give me some pointers as to how I need to amend the steps file to be able to match all 4 blocks?</p>
  
  <p>I have tried adding aliases with the to status and the and next action removed however JBehave errors with a duplicate candidate steps error.</p>
  
  <p>Thank you</p>