$task = $list->tasks()->find($id);
        if (!$task) {
            App::abort(404);
        }
        return Response::json($task->toArray());
    })->where('list_id', '\\d+')->where('id', '\\d+');
    // Update task
    Route::put('lists/{list_id}/tasks/{id}', function ($list_id, $id) {
        $list = TaskList::findByOwnerAndId(Auth::user(), $list_id);
        $task = $list->tasks()->find($id);
        if (!$task) {
            App::abort(404);
        }
        $task->fill(Input::get());
        $task->validate();
        if (!$task->save()) {
            App::abort(500, 'Task was not updated');
        }
        return Response::json($task->toArray());
    })->where('list_id', '\\d+')->where('id', '\\d+');
    // Delete task
    Route::delete('lists/{list_id}/tasks/{id}', function ($list_id, $id) {
        $list = TaskList::findByOwnerAndId(Auth::user(), $list_id);
        $task = $list->tasks()->find($id);
        if (!$task) {
            App::abort(404);
        }
        $task->delete();
        return Response::make(null, 204);
    })->where('list_id', '\\d+')->where('id', '\\d+');
});