    :else false))
 
 (t/deftest map-matcher-test
+  (t/testing "Very simple example without bindings."
+    ;; we thought that empty lets in the macro-expand would create problems
+    (t/is (= [] ((p/map-matcher [(:a)] []) {:a "a"}))))
+  (t/testing "Very simple examples with binding."
+    (t/is (= [] ((p/map-matcher [(:a :as a)] []) {:a "a"})))
+    (t/is (= ["a"] ((p/map-matcher [(:a :as a)] [a]) {:a "a"}))))
+
   (t/is (= ["x" "z"]
            (example-matcher one-data)))
   (t/is (= ["a" "c" {"Z" 42 "Y" 23 "X" 65 "W" {"foo" "bar"}} 42 23]

(p/defpattern constant-pattern [(X x)])
(def p (p/parse-pattern '[(X x)]))

(t/deftest closes-over-outer-variables-test
  (t/testing "with compare-fn"
    (let [evt {"X" "x"}]

  ;; FIXME: What is the difference between this and the test before?
  (t/testing "map-matcher-regex-key-not-found"
    (t/is (= false (example-matcher three-data)))))

(t/deftest map-matcher-optional-default-test
  (t/is (= ["a" "C" "C" 42]
