Perhaps a variation on this hack may work for you:
cntl[range : {l_, u_}] := Control[{{a, Mean[range]}, l, u}]
With[{ranges = {{-4, 1}, {1, 5}}},
Manipulate[a = Clip[a, ranges[[b]]], {{b, 1}, {1, 2}},
PaneSelector[
MapIndexed[(#2[[1]] -> cntl[#1] ) &, ranges],
Dynamic[b]]
]
]
However, the a=Clip[a] probably causes some unwanted firing of the Dynamic object from Manipulate. There is likely a better way.