## [Clojure][1], 292 characters after minimizing

Here's a first attempt, almost positive I can widdle it down further:  

    (defn name-game
      [n]
      (let [[b f m] (map (fn [x] (if (some #(= % (first n) (last x)) "bfm")
                                  (str (apply str (butlast x)) (apply str (rest n)))
                                  (str x (apply str (drop-while (fn [x] (not (some #(= % x) "aeiou"))) n))))) [", bo-b" "\nBanana-fana-fo-f" "\nFee-fi-mo-m"])]
        (str n ", " n b f m "\n" n "!")))

I'm just learning clojure and thought it'd be fun to give this a shot. Here's my reasoning:

>! - To strip off consonants from beginning of string: `(drop-while (fn [x] (not (some #(= % x) "aeiou"))) name)`<br>
>!  
>! -  To handle the extra rules for "b", "f" and "m", I broke text into list of phrases: `[", bo-b" "\nBanana-fana-fo-f" "\nFee-fi-mo-m"]`<br><br>
>! 
>! - Then, I applied a function that asks whether the phrase ends with the same letter that the name starts with, and used that to transform
>! those 3 phrases based on the rules of the puzzle <br><br>
>! 
>! - Final step is to build a string with results

  [1]: http://clojure.org