Write a function to merge overlapping time intervals for vehicle dispatch schedules. Implement merge_intervals(intervals), where intervals is a list of [start, end] pairs, and return a new list of merged pairs sorted by start time. Intervals that touch, such as [1, 3] and [3, 5], should merge; return [] for empty input.
def merge_intervals(intervals):