RequireJS con jQuery Validation

Estoy tratando de usar RequireJS para agregar las referencias a mis archivos de script de validación jQuery. Tengo 3 archivos de script en lugar del habitual 1:

jquery.validate - La biblioteca de validación de jqueryjquery.validate.unobtrusive: esto agrega una validación discreta a la biblioteca de validación de jquery (para que pueda usar los atributos de los datos y automáticamente los conecte). Esto depende de jquery.validatejquery.validate.custom: esto agrega mis propios métodos de validación discreta personalizados y depende de jquery.validate.unobtrusive

He configurado la siguiente configuración:

require.config({
    paths: {
        'jquery': 'Scripts/jquery-1.8.3.min',
        'jquery.validate': 'Scripts/jquery.validate.custom'
    },
    shim: {
        'Scripts/jquery.validate': ['jquery'],
        'Scripts/jquery.validate.unobtrusive': ['jquery', 'Scripts/jquery.validate'],
        'Scripts/jquery.validate.custom': ['jquery', 'Scripts/jquery.validate.unobtrusive']
    }
});

Ahora tengo el siguiente módulo:

define(['jquery', 'jquery.validate'], function($) {
    alert('Yey!');
});

Sin embargo, se produce un error en el archivo jquery.validate.custom que me indica que no se ha inyectado la dependencia discreta. Después de un poco de depuración con las herramientas del navegador y mirando la pestaña de la red, puedo ver que descarga con éxito los archivos jquery.validate.custom.js y jquery.validate.js, pero ni siquiera intenta descargar los archivos jquery.validate.unobtrusive. js archivo.

Apreciaría si alguien pudiera mostrarme lo que estoy haciendo mal. Gracias

Editar:

Ahora he intentado:

require.config({
    paths: {
        'jquery': 'Scripts/jquery-1.8.3.min',
        'jquery.validate': 'Scripts/jquery.validate.custom'
    },
    shim: {
        'Scripts/jquery.validate': ['jquery'],
        'Scripts/jquery.validate.unobtrusive': ['jquery', 'Scripts/jquery.validate'],
        'jquery.validate': ['jquery', 'Scripts/jquery.validate.unobtrusive']
    }
});

Y funciona correctamente. También probé lo siguiente porque creo que se ve mejor:

require.config({
    paths: {
        'jquery': 'Scripts/jquery-1.8.3.min',
        'jquery.validate': 'Scripts/jquery.validate.custom',
        'jquery.validate.core': 'Scripts/jquery.validate',
        'jquery.validate.unobtrusive': 'Scripts/jquery.validate.unobtrusive'
    },
    shim: {
        'jquery.validate.core': ['jquery'],
        'jquery.validate.unobtrusive': ['jquery', 'jquery.validate.core'],
        'jquery.validate': ['jquery', 'jquery.validate.unobtrusive']
    }
});

Pero esto da un error de tiempo de espera.

Si alguien pudiera explicar por qué la segunda solución no funciona, sería genial. Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta