 
   When *with-stemmed* is true, the iteratior item is the following:
   [stemmed-word [start-offset end-offset]]"
-  (let [phrases (into #{} (filter #(.contains % " ") dict))
+  (let [phrases (into #{} (filter #(or (.contains % " ")
+                                       (.contains % "-")) dict))
         words (clojure.set/difference dict phrases)
-        search-words (stemming-dict words)
-        search-phrases (stemming-phrases phrases)
+        search-words (clojure.set/union (stemming-dict words) words)
+        search-phrases (clojure.set/union (stemming-phrases phrases)
+                                          (map #(.split % "[ -]") phrases))
         br-words (map #(BytesRef. %) search-words)
         br-phrases (map (fn [phrase] (map #(BytesRef. %) phrase)) search-phrases)
         iwords (into #{} br-words)

                           start (first tp)
                           ;; The end (end-offset) of the previous (last)
                           ;; matched word of the phrase in text
                           end (llast pp)]
                       (< (Math/abs (- start end))
                          *words-distance-in-phrase*)))
                   this-position))]
             (if next-pos
               (recur (next pps) (cons (conj pp next-pos) result))

                   (doall
                    (map #(stemming-word %)
                         phrase-words)))
                 (map #(.split % "[ -]") dict-phrases-set))))

(defn get-positions [^TermsEnum te & {:keys [get-term
                                             get-freq
