This paper studies the problem of optimal and reliable routing for multicast sessions in wavelength-divisionmultiplexing (WDM) networks. The objective is to minimize the cost and the blocking probability when establishing several multicast sessions while guaranteeing protection against any single link failure. In the presence of static traffic, two different Integer Linear Programming (ILP) formulations, Joint ILP 1 and Joint ILP 2, find the working trees and the link-disjoint backup paths for the sessions simultaneously, with Joint ILP 2 choosing a specific number of links to route the working trees. The proposed ILPs reduce the cost by 25 -30 % while coping with a larger number of demands per session compared to stateof-the-art solutions. This work also addresses the problem in a dynamic environment, with sequential multicast sessions of random demands, by proposing an ILP for the optimal solution and a heuristic called Demand-Aware Tree-Forming Optimal Path Pairs (DA-TF-OPP). Dealing with one multicast session at a time, DA-TF-OPP takes into account the sequence in which the demands should be routed and provides a working tree to prevent traffic loops, along with the backup paths. Compared to the state-of-the-art, DA-TF-OPP provides up to 5 % lower average cost and up to 3 % lower average blocking probability.