Shouldn't this walk forwards instead of backwards.  Otherwise

abc[@x='x'][@y='x']  will match  abc[@x='x'].