Breakfast on Pluto sometimes feels like a rewind through director Neil Jordan's film-making career over the last 20 years.
Once again produced by Stephen Woolley, and featuring favourite actors Stephen Rea, Liam Neeson, Brendan Gleeson and Ian Hart, the movie reworks characters and themes from his previous films with characteristically exhilarating energy and visual flair.
There's the sleazy underworld of thugs and prostitutes from Mona Lisa, the potent cocktail of transvestism and political violence from The Crying Game, and the dichotomy between comic-strip fantasy and brutal reality from The Butcher Boy.
However, even if there are occasional moments of déjà vu, there is enough new in the mix to make this darkly comic romantic fantasy a compelling movie. As with The Butcher Boy, Jordan and Patrick McCabe have adapted McCabe's Booker Prize-nominated novel, but in addition the strong influence of Voltaire's Candide can be felt - the innocent hero clings to his hopes and dreams despite the appalling things that happen to him during his quest for love and happiness.
It is the story of Patrick Braden (Cillian Murphy), abandoned as a baby in small-town '60s Ireland, brought up in a foster family to which he has no more sense of belonging than to the narrow-minded and repressive society around him. As a cross-dressing teenager who prefers to be called 'Kitten', unsurprisingly he is an outsider - as are his three friends, the black girl Charlie (Ruth Negga), the IRA-supporting Kirwin (Laurence Kinlan) and the Down's syndrome sufferer Laurence (Seamus Reilly). Kitten's sense of alienation is reinforced by finding out he is the product of a shameful affair between Father Liam (Liam Neeson) and the priest's ex-housekeeper, who has gone off to London.
After running away from 'home', Kitten goes on the road with a rockabilly band and forms a romantic relationship with its macho singer Billy Hatchett (Gavin Friday). They get into trouble with Billy's IRA friends, so Kitten heads off to London to search for his mother. Sleeping rough and drifting into prostitution, he encounters a number of misfits - some friendly, some hostile - in a series of bizarre episodes as he stumbles through the seedy glamour of the capital in the 1970s.
Kitten's dour, bigoted Irish background is nicely contrasted with the liberated, exciting but dangerous metropolis, with his androgynous looks fitting perfectly into the glam-rock era. And there are many amusing scenes (such as Kitten as a Womble-dressed children's entertainer, with Brendan Gleeson as a hilariously foul-mouthed Uncle Bulgaria), as well as disturbing ones (as when Kitten is picked up by a sadistic kerb-crawler, played by the convincingly sinister Bryan Ferry).
However, the trouble with the idea of Kitten being on a journey of self-discovery, of establishing his own identity, is that the only way he seems to survive all that is thrown at him is by retreating into a fantasy world - not exactly the best way to mature into a rounded person.
Cillian Murphy gives an astonishing gender-bending performance, with a surprising sense of toughness beneath his graceful demeanour, and he powerfully conveys Kitten's yearning romanticism. But this is someone who is as much the victim of his own unworldly imagination as of those who abuse and exploit him for their own reasons. He doesn't actually seem to learn anything on this tragicomic odyssey.
While Liam Neeson looks uncomfortable in his underwritten role as the Father who is ashamed of being a father, and Ian Hart fails to make plausible PC Wallis's transformation from being Kitten's bully boy to acting like his kindly uncle, there is - yet another - superb performance from Stephen Rea, as the lugubrious magician Bertie for whom Kitten acts as glamorous assistant.