SOGL, 3232 30 bytes
½ouiīZģ9Ο|ΧyΚ⅞ō÷Jeq^.](‚7‘⁽9V;⅜‛°@Ε¬tπs%.½Ω‘⁽ b,ŗ ey,ŗ
The first input can't contain the letter ey
, which seems to leave a reasonable subset of ASCII (and unicode) left.
½ouiīZģ9Ο|ΧyΚ⅞ō÷Jeq(‚7‘
is a compressed string of "how much b would a beby ey if a beby could ey b?"
(characters chosen so the required words are all in the top 512 words of the dictionary which compress better), then b
is replaced with the 1st input and ey
with the 2nd.