Understand “manhole/iron/-- cover/lid/-- cover/lid/handle” as the iron handle.
The problem here is that the parser is greedy about accepting words. When it sees GET COVER, the word COVER fails to match the first group (“manhole/iron/–”). Then it does matches the second group (“cover/lid/–”). Now COVER is consumed. Then the parser looks at the third group (“cover/lid/handle”), which has no “–” option. But no more words are available, so it fails the match.
GET COVER COVER will succeed; you can follow the logic through and see why.
The lesson is to not use a single word in multiple places in a phrase like that. What should you do instead? That depends on what kinds of inputs you want to recognize for this object. I’m not sure what you’re aiming at when you want the handle to be synonymous with the cover. If they’re in different rooms, you should be able to get away with
Understand "manhole","cover", "lid" as the iron handle.
Then any combination of those words (including “iron” and “handle”) will work. There won’t be a collision with the manhole cover because that’s in a different room.