We have built Repeater widget with dynamically select page type, Select top N pages, Order by, Where condition etc.,
You can check the source code from the following link -
https://github.com/vasu-rbt/kentico12-mvc-widgets/tree/master/Raybiztech.Kentico12.MVC.Widgets/Raybiztech.Kentico12.MVC.Widgets.Repeater
Hope it helps you.