public Route geefRoute(Knooppunt start, Knooppunt stop) throws IllegalArgumentException {
        if(knooppuntOpMuur(stop) == true || knooppuntOpMuur(start) == true) throw new IllegalArgumentException("start en/of stop mogen niet op een muur vallen");

        if (start.equals(stop)) {
            Route routeNaarZelfdePunt = new Route();
            routeNaarZelfdePunt.appendKnooppunt(start);
            routeNaarZelfdePunt.appendKnooppunt(stop);

            return routeNaarZelfdePunt;

        }
        RouteMetaData bezochtevelden[][] = new RouteMetaData[this.speelveld.length][this.speelveld[0].length];
        bezoekVeld(start, bezochtevelden, null, 0);

        printBezochteVelden(bezochtevelden);

        return contrueerRoute(bezochtevelden, stop);

    }