Heat the olive oil in a frying pan, add the shallots and onions and season, to taste, with salt and freshly ground black pepper. Cook over a gentle heat for eight minutes, stirring frequently, until soft and lightly caramelised.
In a separate pan, heat the butter, add the mushrooms and garlic and cook over a medium heat for 2-3 minutes.
Place the couscous in a bowl and pour over enough boiling water to cover the couscous by a centimetre. Cover with cling film and leave until all the water has been absorbed.
Remove the cling film and fluff up the grains with a fork and season, to taste, with salt and freshly ground black pepper.
To serve, pile the couscous onto a serving plate and top with the caramelised onions and mushrooms. Garnish with parsley.