Change enables control over the order that Admin Menu items appear in the admin menu.

Basically Anything mentioned in bootstrap's MvcConfiguration::append of AdminPages will appear in the order they appear in there.

Everything else will appear in whatever order it would have done anyway (based on the directory listing of the admin controller directory), except they will be after the MvcConfiguration ones.

Extra MvcConfiguration parameters supported for menus:

'hide_top_menu' prevents the top level menu for a controller being added - this is useful if you want several controllers to appear under a single admin menu, and hence don't want them to have their own top level menu items
'order' allows you to override the order rather than just going with the order they appear in the MvcConfiguration array

Here's an example of how this can be used:

in test_plugin.php

add_action('admin_menu', 'test_plugin_admin_menu_toplevel_add', 1);

function test_plugin_admin_menu_toplevel_add() {
	add_menu_page(
		'Test Plugin Dashboard',
		'Test Plugin',
		'edit_others_pages',
		'test_plugin_admin_mnu',
		'test_plugin_admin_admin_menu_toplevel_page',
		mvc_plugin_app_url('dw_bootcamp_mgmt_sys') . 'public/images/star1-18.png',
		55
	);
}

function test_plugin_admin_admin_menu_toplevel_page() {
	echo "<p>output the plugin top level menu page content here...</p>";
}

and in app/config/bootstrap.php

MvcConfiguration::append(array(
	'AdminPages' => array(
		'testdata1' => array(
			'hide_top_menu' => true,
			'index' => array(
			    'label' => 'TestData1',
			    'in_menu' => true,
			    'parent_slug' => 'test_plugin_admin_mnu'
		    ),
			'add' => array(
				'in_menu' => false,
			),
			'edit' => array(
				'in_menu' => false,
			),
			'delete' => array(
				'in_menu' => false,
			),
		),
		'testdata2' => array(
			'hide_top_menu' => true,
			'index' => array(
			    'label' => 'TestData2',
			    'in_menu' => true,
			    'parent_slug' => 'test_plugin_admin_mnu'
		    ),
			'add' => array(
				'in_menu' => false,
			),
			'edit' => array(
				'in_menu' => false,
			),
			'delete' => array(
				'in_menu' => false,
			),
		),
		'testdata3' => array(
			'hide_top_menu' => true,
			'index' => array(
			    'label' => 'TestData3',
			    'in_menu' => true,
			    'parent_slug' => 'test_plugin_admin_mnu'
		    ),
			'add' => array(
			    'label' => 'Add New TestData3',
			    'in_menu' => true,
			    'parent_slug' => 'test_plugin_admin_mnu'
			),
			'edit' => array(
				'in_menu' => false,
			),
			'delete' => array(
				'in_menu' => false,
			),
		),
	)
));

Conflicts:
	core/loaders/mvc_admin_loader.php