 // MARK: - 
 // MARK: Dispatch once implemetation.
 
+// Read more: [Dispatch once in Swift 3](http://stackoverflow.com/a/38311178)
 fileprivate extension DispatchQueue {
 	
 	private static var _onceTracker: [String] = []

///
extension UIViewController: TransitionHandler {
	
	///
	/// You can read more about this implemetation in this article - ["Swift improve performSegue(withIdentifier:sender:) or a router with storyboards"](https://habrahabr.ru/post/275783/)
	///
	
	class Box {
		let value: Any?
		init(_ value: Any?) {

			objc_setAssociatedObject(self, &UIViewController.ClosurePrepareForSegueKey, Box(newValue), objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN)
		}
	}

	// Return transition segue.
	typealias ConfiguratePerformSegue = (UIStoryboardSegue) -> ()
	
