Abstract: A programmable wavelength router having a plurality of cascaded stages where each stage receives one or more optical signals comprising a plurality of wavelength division multiplexed (WDM) channels. Each stage divides the received optical signals into divided optical signals comprising a subset of the channels and spatially positions the divided optical signals in response to a control signal applied to each stage. Preferably each stage divides a received WDM signal into two subsets that are either single channel or WDM signals. A final stage outputs optical signals at desired locations. In this manner, 2.sup.N optical signals in a WDM signal can be spatially separated and permuted using N control signals.