In a microwave-safe bowl, heat the cranberries in the wine at high power for 2 minutes. Let stand until the cranberries are slightly plumped, about 10 minutes. Drain the cranberries and discard the liquid.
In a large skillet, heat the oil. Add the shallots and cook over low heat until softened, about 2 minutes. Add the brussels sprouts and cook over moderately high heat until bright green, about 2 minutes. Add the water and drained cranberries and season with salt and pepper. Cover and cook over moderate heat until the brussels sprouts are tender, about 12 minutes. Uncover and continue cooking until liquid has evaporated, about 2 minutes. Add the butter and toss to coat. Serve right away.
Notes
Make ahead tip: This recipe can be prepared up to 4 hours ahead and reheated gently in a skillet.