title: dplyr semi_join is not supposed to return duplicates but it does
body: <p>The <code>CRAN</code> documentation on the <code>dplyr</code> package, in reference to semi_join states: <code>"A semi join differs from an inner join because an inner join will return one row of x for each
  matching row of y, where a semi join will never duplicate rows of x"</code></p>
  
  <p>The following code, however, seems to give duplicate rows of x in output:</p>
  
  <pre><code>x &lt;- data.frame(x1=c(1,1,2), x2=c(2,2,2))
  y &lt;- data.frame(x2=c(1,2), x3=c(2,2))
  c &lt;- semi_join(x,y)
  </code></pre>
  
  <p>Does this code contradict the documentation, or am I missing something obvious?</p>