         _ -> "Will match"
       end
       #=> "Will match"
+
+  ## Using guards to match against multiple values
+
+  While it is not possible to match against multiple patterns in a single
+  clause, it's possible to match against multiple values by using guards:
+
+      case data do
+        value when value in [:one, :two] ->
+          "#{value} has been matched"
+
+        :three ->
+          "three has been matched"
+      end
 
   """
   defmacro case(condition, clauses), do: error!([condition, clauses])


  ## Examples

      case thing do
        {:selector, i, value} when is_integer(i) ->
          value
        value ->
          value
      end

  In the example above, we match `thing` against each clause "head"
  and execute the clause "body" corresponding to the first clause
  that matches.

  If no clause matches, an error is raised.
  For this reason, it may be necessary to add a final catch-all clause (like `_`)
  which will always match.

      x = 10

      value
      #=> unbound variable value

  Variables in the outer context cannot be overridden either:

      value = 7

