( Syllable Challenge )
: upper ( ch -- CH ) 95 and ;
: vowel? ( ch -- f )
  upper dup [char] A = over [char] E = or over [char] I = or
        over [char] O = or over [char] U = or swap [char] Y = or ;
: vowel# ( a n -- n ) 0 swap 0 do over i + c@ vowel? if 1+ then loop nip ;
: stem ( a n -- )
  2dup vowel# 0= if type exit then
  2dup vowel# 2 < if type space exit then
  dup 5 <= if
    2dup vowel# over 2 + 2/ >= if type space exit then
  then
  2dup 2/ recurse
  dup dup 2/ - >r 2/ + r> recurse
;
: test bl parse 2dup type space space stem cr ;