   (let [spec (get-in bolt path)
         lexemes (shufflefn (get-lexemes model spec))
         bolts-at (if (< depth max-depth)
-                   (nugents
+                   (generate-all
+                    (get-in bolt path)
                     model
-                    (get-in bolt path)
                     (+ 1 depth) max-depth))
         lexemes-before-phrases
         (lexemes-before-phrases depth max-depth)]

           shuffle? nil
           truncate-children? true
           take-n 1}}]
  (first (nugents language-model spec)))

(declare comp-path-to-complements)



(declare bolts-with-comps)

(defn generate-all [spec model & [depth max-depth]]
  (let [depth (or depth 0)
        max-depth (or max-depth max-total-depth)]
    (log/debug (str "generate-all:" depth "/" max-depth ":         " (strip-refs spec)))
    (let [bolts-and-comps (filter #(not (some empty? (vals %)))
                                  (bolts-with-comps spec model depth max-depth))
          routes (mapcat (fn [each-bolt-and-comps]
