overlay.undo now takes an argument for which overlay it should undo.

Every function in the overlay module will return the overlay it just
performed. This allows overlay and undo operations to occur in
arbitrary order.