How prove this diophantine equation $(x^2-y)(y^2-x)=(x+y)^2$ have only three integer solution? HAPPY NEW YEAR To Everyone! (Now Beijing time  00:00 (2015))

Let $x,y$ are integer numbers,and such $xy\neq 0$,
Find this diophantine equation all solution
$$(x^2-y)(y^2-x)=(x+y)^2$$

I use Wolf found this equation only have two  nonzero integer solution $(x,y)=(-1,1),(-1,-1)$,see wolf
$$\Longleftrightarrow x^3+y^3+x^2+y^2=xy(xy-1)$$
But How prove it?
and I found sometimes,and my problem almost similar with 2012 IMO shortlist:2012 IMO shortlist

$$
\begin{array}{l}
 \left( {x^2  - y} \right)\left( {y^2  - x} \right) = \left( {x + y} \right)^2  \\ 
  \Leftrightarrow xy\left( {xy - 1} \right) = x^3  + y^3  + x^2  + y^2  \\ 
  \Leftrightarrow xy\left( {xy - 1} \right) = x^2 \left( {1 + x} \right) + y^2 \left( {1 + y} \right) \cdots \left(  *  \right) \\ 
 \left\{ \begin{array}{l}
 x = y \\ 
 \left(  *  \right) \Leftrightarrow x^2  - 1 = 2x\left( {1 + x} \right) \\ 
 \left(  *  \right) \Leftrightarrow \left( {1 + x} \right)^2  = 0 \\ 
 \left(  *  \right) \Leftrightarrow \left( {x;y} \right) \in \left\{ {\left( { - 1; - 1} \right)} \right\} \\ 
 \end{array} \right.;\left\{ \begin{array}{l}
 x =  - y \\ 
 \left(  *  \right) \Leftrightarrow x^2  + 1 = 2x^2  \\ 
 \left(  *  \right) \Leftrightarrow \left( {x;y} \right) \in \left\{ {\left( {1; - 1} \right);\left( { - 1;1} \right)} \right\} \\ 
 \end{array} \right. \\ 
 \end{array}$$
