(Work in progress; I was unexpectedly called away. The aim of this post is to do it without assuming differentiability.)
Roots
To find the roots of $f$: suppose $f(y) = 0$.
Then $f(x) = y+f(x)+y f(x)$ and so $(1+f(x))y = 0$; therefore $f(x) = -1$ for all $x$, or $y=0$.
So we have two possibilities: $f(x) = -1$ for all $x \not = -1$, or $f(0) = 0$.
But if $f(x) = -1$ for all $x \not = -1$, then letting $x=0$ we obtain $$f(-1) = -1$$
which is a contradiction to the undefinedness of $f(-1)$.
(There's a slightly simpler contradiction if we simply suppose there is any $y$ with $f(y) = -1$, as egreg points out.)
Therefore $f$ has exactly one root, and it is at $0$.
(Strictly, we should go back through this, and verify that we never tried to give $f$ the argument $-1$. The easiest way to do this is to let $x$ be some real such that $f(x) \not = -1$, and then just go through the same proof again.)
Using the root
Letting $x=0$, we see that $f(f(y)) = y$ for all $y$.
Letting $y=f(x)$, we obtain $$f(2x+x^2) = 2f(x)+f(x)^2$$
so, if $x=-2$, we get $f(0) = 2 f(-2) + f(-2)^2$; that is, $f(-2) = 0$ or $f(-2) = -2$.
We already know $f$ has exactly one root, so $f(-2) = -2$.
Letting $x = f(y)$, we obtain $$f(2f(y)+f(y)^2) = 2y+y^2$$
so if $f(y) = -2$, we obtain $y = 0$ (contradiction) or $y=-2$.
Therefore $f$ hits $-2$ at exactly one input: namely $-2$.
Letting $y=-2$, then, we obtain $f(-x-2) = -2+f(x)-2f(x)$, so $$f(-x-2) = -f(x)-2$$
and so the behaviour of the function is determined precisely by its behaviour on $x>-1$.
Actually, under the assumption that there is $x$ such that $f(x) = 1$, we obtain $f(x + f(y) + x f(y)) = 1 + 2 y$ and hence (by applying $f$ to both sides) $$x + f(y) + x f(y) = f(1 + 2 y)$$
whence (substituting $z=1+2y$) we get $$f(z) = f\left(\frac{z-1}{2}\right) + x f\left(\frac{z-1}{2}\right) + x$$
so any open interval $(-1, r)$ determines the behaviour of $f$ completely.
TODO: complete this. As LutzL points out, there is more than one function satisfying the recurrence :(