add (map-lexicon): return a new lexicon filtered by the head unifying with each. successful unifications are preserved in the new, smaller lexicon
add new test for generating "io dormo (i sleep)"