public InverseMatcher(ParseBlock Block)
        {
            var attributes = Block.BreakToAttributes <object>(typeof(Attribute));

            Matcher = (Matcher <T>)attributes[(int)Attribute.MATCHER];
        }
 public PathObjective(Matcher <Tile> Source, Matcher <Tile> Sink, Matcher <Tile> Path)
 {
     this.Source = Source;
     this.Sink   = Sink;
     this.Path   = Path;
 }
 public InverseMatcher(Matcher <T> Matcher)
 {
     this.Matcher = Matcher;
 }