Add swap_ranges to algorithm component (missed from first time around)